package com.baijiaoxi.common.model.base.mapper;

import com.baijiaoxi.common.model.query.Page;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;

/**
 *  定义基础mapper
 *  所有生成mapper实现此接口 ，其他地方可以使用 CoreMapper<T>coreMapper的方式调用任何生成mapper
 * @param <T> 实体类
 */
public interface CoreMapper<T> extends BaseMapper<T> {
    /**
     * 单表查询
     *
     * @param query
     * @return
     */

    T getOne(T query);

    /**
     * 单表查询列表
     * 不分页
     *
     * @param query
     * @return
     */
    List<T> getList(T query);

    /**
     * 单表查询列表
     * 分页
     *
     * @param query
     * @return
     */
    Page<T> getPage(Page<T> page, T query);

    /**
     * 查询记录数
     *
     * @param query
     * @return
     */
    int getCount(T query);

    /**
     * 删除
     *
     * @param query
     */
    void del(T query);

}
